def func0():
    print("调用了 func0 函数0")


def func1(param1):
    print("调用了 func1 函数1,参数为：", param1)


def func2(param1, param2):
    print("调用了 func1 函数1,参数为1：", param1, "参数为2：", param2)


def func21(param1=1, param2=2):
    print("调用了 func1 函数1,参数为1：", param1, "参数为2：", param2)


def func22(param1, param2=2):
    print("调用了 func1 函数1,参数为1：", param1, "参数为2：", param2)


def func3(*param):
    # print(param)
    # 可变参数在python 中的类型转变为元组(tuple)
    # print(type(param))
    # print(param[0])
    # for item in param:
    #     print(item, end=" ")
    # 使用join()方法将列表元素连接成一个字符串，元素之间用逗号分隔
    result = ','.join(str(item) for item in param)
    print(result)  # 输出: apple,banana,cherry


if __name__ == '__main__':
    func0()
    func1(1)
    # 指定位置参数的情况下，调用的时候必须将位置参数一一对应
    func2(2, 3)
    # 带有默认参数的函数调用的时候可以不写参数。
    func21()
    # 当函数指定默认参数的时候，需要后面
    func22(12)

    func3(123, "abc")
